/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import static persistencia.DBManagerIngresos.conexion;
import modelo.tabla.Ingresos;
import modelo.MetodosIngresos;

/**
 *
 * @author Kevin
 */
public class MetodosIngresos {
    public Integer getIdPaciente(String n) throws java.sql.SQLException {
        Integer id = null;

        try {
            Statement s = conexion.createStatement();
            String con = "Select nombre from pacientes where id = '" + n + "'";

            ResultSet rs = s.executeQuery(con);

            if (rs.next()) {
                id = rs.getInt("id");
            }

        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.modIngresos(). Error de SQL.");
            throw ex;
        }
        return id;
    }

    public ArrayList<Ingresos> getIngresos() throws java.sql.SQLException {
        ArrayList<Ingresos> alIng = new ArrayList<Ingresos>();
        Ingresos i;
        //Iterator alIt = alMarcas.iterator();
        try {
            Statement s = conexion.createStatement();
            String sql = "select * from Ingresos";
            ResultSet rs = s.executeQuery(sql);
            while (rs.next()) {
                i = new Ingresos(rs.getInt("id"),rs.getString("fechaI"), rs.getString("fechaA"), rs.getInt("idPA"));
                alIng.add(i);
                //jpmm.jComboMarca.addItem(alIt.next().toString()); 
            }
        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.getMarcas(). Error de SQL.");
            throw ex;
        }
        return alIng;
    }
//        public ArrayList<Pacientes> getPacientes() throws java.sql.SQLException {
//        ArrayList<Pacientes> alPac = new ArrayList<Pacientes>();
//        Pacientes p;
//        //Iterator alIt = alMarcas.iterator();
//        try {
//            Statement s = conexion.createStatement();
//            String sql = "select * from Pacientes";
//            ResultSet rs = s.executeQuery(sql);
//            while (rs.next()) {
//                p = new Pacientes(rs.getInt("id"),rs.getString("fechaI"), rs.getString("fechaA"), rs.getInt("idPA"));
//                alPac.add(p);
//                //jpmm.jComboMarca.addItem(alIt.next().toString()); 
//            }
//        } catch (SQLException ex) {
//            System.err.println("ERROR. DBManagerIngresos.getPacientes(). Error de SQL.");
//            throw ex;
//        }
//        return alPac;
//    }

    /**
     * Recupera todas las marcas almacenadas en la base de datos.
     *
     * @return Todas las marcas de la base de datos.
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * datos.
     */


    public void BuscarIngresos(String e) throws SQLException {
        Statement s = conexion.createStatement();
        String sql = "select * from ingresos where id ='" + e + "' ";
    }



    /**
     * Inserta una marca en la base de datos.
     *
     * @param m Marca a insertar.
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * datos.
     */
    public void addIngreso(Ingresos m,Ingresos i) throws java.sql.SQLException {
        try {
            Statement s = conexion.createStatement();
            String sql = "insert into ingresos (INGRESO) values ('" + m.getFechaI() + i.getIdPA() +  "')";
            System.out.println(sql);
            s.executeUpdate(sql);
        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.addIngreso(). Error de SQL.");
            throw ex;
        }
    }
    /**
     * Metodo creado para que recibiendo el nombre de la<marca nos devuelva su id
     *
     * @param marca Marca a insertar.
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * 
     */
   
/**
     * Modificar una marca en la base de datos.
     *
     * @param o Id del ingreso que queremos
     * @param n Nombre nuevo que recojimos del textfield en el panel JPMarcaModificacion
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * datos
     */
    public void modIngresos(Ingresos o, Ingresos n) throws java.sql.SQLException {
        try {
            Statement s = conexion.createStatement();
            
            //Integer id = this.getIdPaciente(old.getId());

            //String sql = "UPDATE marcas SET nombre=('" + news.getNombre() + "') where= ('" + old.getNombre() + "')";
            String sql = "UPDATE ingresos SET fechaA='" + o.getFechaA() + "' where id='"  + n.getId() + "'";
            System.out.println(sql);
            s.executeUpdate(sql);
        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.modMarca(). Error de SQL.");
            throw ex;
        }
    }
/**
     * Borra un Ingreso en la base de datos.
     *
     * @param d id del Ingreso que se recoje del combobox.
     * @throws java.sql.SQLException Indica un error de acceso a la base de
     * datos
     */
    public void delIngresos(Ingresos d) throws java.sql.SQLException {
        try {
            Statement s = conexion.createStatement();
            String sql = "delete from ingresos where id='" + d.getId() + "'";
            System.out.println(sql);
            s.executeUpdate(sql);
        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.delMarca(). Si quiere borrar marca Primero Vacie de Modelos .Error de SQL.");
            throw ex;
        }
    }


    

   
    public ResultSet Consulta(String fechaI, String fechaA, String IdPa) throws java.sql.SQLException {
        ResultSet rs = null;
        try {
            Statement s = conexion.createStatement();
            String sql = "Select id, fechaA, fechaI, IdPa from ingresos where ingresos.IdPA= pacientes.id ";
            if (fechaA != null && !"".equals(fechaA)) {
                sql = sql + " and fechaA = '" + fechaA + "' ";
            }
            if (fechaI != null && !"".equals(fechaI)) {
                sql = sql + " and fechaI = '" + fechaI + "' ";
            }
            if (IdPa != null && !"".equals(IdPa)) {
                sql = sql + " and IdPA < '" + IdPa + "' ";
            }
            System.out.println(sql);

            rs = s.executeQuery(sql);
        } catch (SQLException ex) {
            System.err.println("ERROR. DBManager.addIngreso(). Error de SQL.");
            throw ex;
        }
        return rs;
    }
    
    
}
